from collections import defaultdict
import threading


def hot_reload_config(base_config, delta_config):
    """
    实现配置的热更新：
    1. 添加新配置项
    2. 更新已存在的配置
    3. 清除标记为None的配置项
    """
    # 添加/更新配置
    for key, value in delta_config.items():
        if value is None:
            base_config.pop(key, None)  # 安全删除
        else:
            base_config[key] = value

    # 返回新的视图对象
    return type(base_config)(base_config)  # 保持原始字典类型

if __name__ == '__main__':
    # 示例配置
    base_config = {
        'discount_rules': {
            'apple': 0.9,  # 苹果打9折
            'banana': 0.8  # 香蕉打8折
        },
        'shipping_cost': 5.0  # 基础运费
    }
    # 热更新配置
    delta_config = {
        'discount_rules': {
            'apple': 0.8,  # 更新苹果折扣
            'pear': 0.7  # 添加新商品折扣
        },
        'shipping_cost': None  # 移除运费配置
    }
    # 应用热更新
    updated_config = hot_reload_config(base_config, delta_config)
    print(updated_config) # {'discount_rules': {'apple': 0.8, 'pear': 0.7}}